/***********************************************************************************
@file   
@author
@attention 浓度报警
@index   
***********************************************************************************/
#include "speak.h"
/***********************************************************************************
 * @param
***********************************************************************************/
_speak_obj speak_obj;
/***********************************************************************************
* @brief  更新运行状态
***********************************************************************************/
void speak_update_state(uint8_t state)
{
    speak_obj.last_state = speak_obj.now_state;
    speak_obj.now_state = state;
}
/***********************************************************************************
 * @brief  处于报警  状态 且未消音  供电报警否则不供电  status==6测试
 * @retval 
***********************************************************************************/
void speak_exe_fsm(void)			
{
    if((status==1)||(status==2))//浓度报警
    {
        if(xiaoyin==1)
        {
            speak_update_state(1); 
        }
        else
        {
            speak_update_state(4); 
        }
    }
    else
    {
        speak_update_state(0); 
    }

    if(status==6)//测试
    {
        speak_update_state(3); 
    }   
    //-----------------------------------------------浓度报警60s计时
    if(speak_obj.now_state==4 && speak_obj.last_state==0)
    {
        speak_obj.cnt = system_data.speak_times;
    }   
    //-----------------------------------------------
    if(speak_obj.cnt>0&&speak_obj.now_state==4)
    {
        alarm_en(1);
    }  
    else if(speak_obj.now_state<3)
    {
        alarm_en(0);
    }    
    else if (speak_obj.now_state==3)
    {
         alarm_en(1);
    }
    else 
    {
        alarm_en(0);
    }
}
/***********************************************************************************
 * @brief  报警 定时器 RTC IT
***********************************************************************************/
void speak_timer(void)			
{
    if(speak_obj.cnt>0)
    {
//        printf("speak_cnt=%d\r\n",speak_obj.cnt);
        speak_obj.cnt = speak_obj.cnt-rtc_xsec;
    }
}

